--[[
1:过期物品清理
2:开箱子（开坐骑  飞行器）（不开金币）

--]]
local log_通用 = require("通用方法集合.二次封装方法.Log").Log_通用
local 查找固定区域文字并返回文字 = require("通用方法集合.二次封装方法.Tools").查找固定区域文字并返回文字
local 查找固定区域文字并返回坐标 = require("通用方法集合.二次封装方法.Tools").查找固定区域文字并返回坐标
local 查找固定区域文字并点击=require("通用方法集合.二次封装方法.Tools").查找固定区域文字并点击

local M = {}


local function 删除过期物品()
    _ENV["鼠标_随机点击"](1258 , 810 , 1000 , 1500)
    if 查找固定区域文字并点击({769 , 349 , 1125 , 392},"请选择要丢弃道具的数量",1000,false) then
        _ENV["鼠标_随机点击"](1185 , 605 , 1000 , 1500)
        _ENV["鼠标_随机点击"](1097 , 743 , 1000 , 1500)
    else
        log_通用("未找到请选择要丢弃道具的数量")
    end
    
end

local function 检测并删除当前过期物品()
    log_通用("检测并删除当前过期物品")
    local 坐标结果 = 查找固定区域文字并返回坐标({944 , 338 , 1000 , 766},"到期")

    if 坐标结果 then

        local 图标X, 图标Y = 坐标结果.x, 坐标结果.y

        local 文字查找区域 = {952, 图标Y - 10, 1322, 图标Y + 50}

        log_通用("文字查找区域: (" .. 文字查找区域[1] .. "," .. 文字查找区域[2] .. "," .. 文字查找区域[3] .. "," .. 文字查找区域[4] .. ")")
        
        local 所有文字内容 = 查找固定区域文字并返回文字(文字查找区域)
    
        if 所有文字内容 then
            log_通用("获取到的所有文字内容:")
            log_通用(所有文字内容)
            
            -- 查找到期时间信息 - 匹配实际格式："到期（至2025年09月08日23:59"
            local 年, 月, 日, 时, 分 = string.match(所有文字内容, "到期%(%s*至(%d+)年(%d+)月(%d+)日(%d+):(%d+)")
            if 年 and 月 and 日 and 时 and 分 then
                log_通用("找到到期时间: " .. 年 .. "年" .. 月 .. "月" .. 日 .. "日 " .. 时 .. ":" .. 分)
                
                -- 转换为时间戳进行比较
                local 到期时间戳 = os.time({
                    year = tonumber(年),
                    month = tonumber(月),
                    day = tonumber(日),
                    hour = tonumber(时),
                    min = tonumber(分),
                    sec = 0
                })
                
                local 当前时间戳 = os.time()
                log_通用("当前时间戳: " .. 当前时间戳)
                log_通用("到期时间戳: " .. 到期时间戳)
                
                if 当前时间戳 >= 到期时间戳 then
                    log_通用("物品已到期，需要删除")
                    删除过期物品()
                    return true
                else
                    log_通用("物品未到期")
                    return false
                end
            else
                log_通用("未找到标准的到期时间格式")
                -- 尝试其他可能的格式
                local 年2, 月2, 日2, 时2, 分2 = string.match(所有文字内容, "到期%(%s*至(%d+)年(%d+)月(%d+)日(%d+):(%d+)")
                if 年2 and 月2 and 日2 and 时2 and 分2 then
                    log_通用("找到到期时间(备用格式): " .. 年2 .. "年" .. 月2 .. "月" .. 日2 .. "日 " .. 时2 .. ":" .. 分2)
                    
                    -- 转换为时间戳进行比较
                    local 到期时间戳 = os.time({
                        year = tonumber(年2),
                        month = tonumber(月2),
                        day = tonumber(日2),
                        hour = tonumber(时2),
                        min = tonumber(分2),
                        sec = 0
                    })
                    
                    local 当前时间戳 = os.time()
                    log_通用("当前时间戳: " .. 当前时间戳)
                    log_通用("到期时间戳: " .. 到期时间戳)
                    
                    if 当前时间戳 >= 到期时间戳 then
                        log_通用("物品已到期，需要删除")
                        return true
                    else
                        log_通用("物品未到期")
                        return false
                    end
                elseif string.find(所有文字内容, "到期") then
                    log_通用("检测到到期文字，但格式不标准，无法解析时间")
                    return false
                end
            end
        else
            log_通用("未能获取到文字内容")
            return false
        end
    else
        log_通用("未找到到期文字，无法确定文字查找范围")
        return false
    end
    
    return false
end

function M.功能_背包限时物品使用 ()
	if  _ENV["文件_任务是否完成"]("每日任务_背包限时物品使用", 6) == true then
		log_通用("每日任务_背包限时物品使用已经完成")
		return true
	end
	if 等级 < 15 then
		return true
	end
	local 找色_限时物品页面 = {1830 , 664 , 1910 , 754 ,
		"bfa47b-202020" , "-16|9|bb9e73-202020|-10|-3|c2a377-202020|4|9|cfb891-202020|1|-1|b8a179-202020|-20|-9|b7a07a-202020|-12|26|c9ac7e-202020|11|25|d2b98f-202020|16|22|bda682-202020|21|15|bfa881-202020|21|-5|ba9f76-202020|14|-13|cfb791-202020|10|-26|c6b18a-202020|-8|-16|ccb58d-202020|17|-8|c0a57c-202020|-4|27|cfb485-202020|-5|26|ba9f75-202020|-9|25|d3b889-202020|-18|17|c0a780-202020|-14|-11|c1a579-202020" , 0 , 0.9
	}
	local 出售成功 = 0
	local H = 1
	for i = 1 , 25 do
		_ENV["调试输出"]("开始循环使用物品"..i , true)
		if _ENV["图色_多点找色Ex"](找色_限时物品页面 , 0.9 , 0 , 0 , 20 , 1 , false ) then
			_ENV["调试输出"]("开启背包限时物品使用" , true)
			for i = 1 , 8 do
				H = i - 出售成功
				_ENV["调试输出"]("开始循环出售"..i , true)
				坐标 = 功能_获取背包格子范围( {1391 , 188 , 1795 , 696} , 5 , 4 , {1701 , 600 , 1795 , 696} , H)
				print(坐标)
				--[===[
				if 坐标 ~= nil and #坐标 >= 4 then
					找色_限时标 = {坐标[1] , 坐标[2] , 坐标[3] , 坐标[4] ,
					"aa997e-202020","-2|-1|8c8068-202020|-4|-1|a59b7f-202020|-7|-1|a1937b-202020|-9|-1|413931-202020|-5|0|aa9c7f-202020|-5|1|b9a989-202020|-5|2|ac9b80-202020|-5|3|ab967f-202020|-5|3|ab967f-202020|-7|3|574d42-202020|-9|4|564c40-202020|-10|5|847361-202020|-11|7|93856b-202020|-12|8|b4a383-202020|-13|10|938979-202020|-13|11|9f9484-202020|-13|13|8d8578-202020|-14|15|6a645b-202020|-12|18|aa937b-202020|-11|20|95816b-202020|-9|21|8e7962-202020|-7|22|998266-202020|-5|23|ad9475-202020|-4|23|b89f80-202020|-2|23|a99278-202020|0|22|9a8570-202020|2|21|816f5e-202020|3|20|8d7d6b-202020|4|18|726457-202020|5|16|796a5c-202020|5|15|736557-202020|6|13|9a8674-202020|6|11|685d50-202020|5|9|776855-202020|4|8|a49074-202020|3|7|a18e72-202020|1|6|6b5e52-202020",0,0.95
					}
					if _ENV["图色_多点找色Ex"](找色_限时标 , 0.95 , 0 , 0 , 0 , 1 , false ) ==false then
					print("没有物品")
					return
					end
				end
				]===]
				if 坐标 ~= nil and #坐标 >= 4 then
                    _ENV["坐标X"]=rnd(坐标[1] + 20 , 坐标[3] - 20)
                    _ENV["坐标Y"]=rnd(坐标[2] + 20 , 坐标[4] - 20)
					_ENV["鼠标_随机点击"] (_ENV["坐标X"] , _ENV["坐标Y"] , 130 , 150)
                    --这里只点击一次。在背包物品使用的时候还会点击一次
				else
					调试输出("错误: 坐标无效，跳过点击操作", true, 1000)
				end
				if 检测并删除当前过期物品() then   --查找固定区域文字并点击({809 , 106 , 1107 , 145} , "因过期而无法使用的道具",300,false,0,0,3) 
					出售成功=出售成功+1
				else
					if 背包物品使用 () then
						出售成功 = 出售成功 + 1
					end
				end
			end
            _ENV["文件_保存完成时间"]("每日任务_背包限时物品使用")
			return 
		elseif _ENV["图色_多点找色Ex"](找色_背包页面 , 0.9 , 0 , 0 , 0 , 1 , false )then
			_ENV["调试输出"]("开启背包限时物品使用" , true)
			_ENV["鼠标_随机点击"] (1875 , 703 , 1000 , 2000)
		elseif 界面判断() == "主界面" then
			_ENV["鼠标_随机点击"] (1697 , 61 , 1000 , 2000)
			_ENV["调试输出"]("开启背包" , true)
			_ENV["鼠标_随机点击"] (1768 , 869 , 1000 , 2000)
		else
			回到主界面()
			
		end
		sleep(100)
	end
end


function M.Test()
    log_通用("背包清理测试")
   等级=55
    M.功能_背包限时物品使用()
end

return M